
/**
 *
 * @author david
 */
public class Token
{
    public enum Tipo
    {
	PARI("'('"),
	PARD("')'"),
	PYC("';'"),
	ASIG("'='"),
	CLASS("'class'"),
	DOUBLE("'double'"),
	INT("'int'"),
	MAIN("'main'"),
	VOID("'void'"),
	LLAVEI("'{'"),
	LLAVED("'}'"),
	COMENTARIO("comentario"),
	ENTERO("entero"),
	EOF("final de fichero"),
	ID("identificador"),
	REAL("real");

	private String subcadena;

	Tipo(String subcadena)
	{
	    this.subcadena = subcadena;
	}

	@Override
	public String toString()
	{
	    return subcadena;
	}
    }
    private Tipo tipo;
    private String lexema;
    private int linea;
    private int columna;

    public Token(Tipo tipo, String lexema, int linea, int columna)
    {
	this.tipo = tipo;
	this.lexema = lexema;
	this.linea = linea;
	this.columna = columna;
    }

    public int getColumna()
    {
	return columna;
    }

    public String getLexema()
    {
	return lexema;
    }

    public int getLinea()
    {
	return linea;
    }

    public Tipo getTipo()
    {
	return tipo;
    }

    @Override
    public String toString()
    {
	return "Token{" + "tipo=" + tipo + " lexema='" + lexema + "' linea=" +
	       linea +
	       " columna=" + columna + '}';
    }

}
